#include <string>
#include <vector>
#include "Person.h"
#include <opencv/cv.h>
#include <opencv/cvaux.h>
#include <opencv/cxcore.h>
#include <opencv/highgui.h>
#include "BlobResult.h"
#include <iostream>
#include <stdio.h>


using namespace std;
using namespace cv;

class ImageProcessor{

public:

	vector<Person> findPeople(Mat& img, Mat& mask, Mat& depthImg);


private:
    /* Functions for finding blobs and people*/
    CBlobResult blobs(Mat& img, Mat& mask);
	CBlobResult people(CBlobResult input);

    /* Functions for finding properties for people in image*/
    float calcDistance(CBlob *blob, Mat& depthImg);
    float calcSpeed(CBlob *blob);
    float calcDefects(CBlob *blob);

    int findPose(CBlob *blob);
    int findPosition(CBlob *blob);



};
